﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using CapaNegocio;
using ModeloDatos;

namespace CapaPresentacion.GestionCaja
{
    public partial class FrmAperturaCaja : Form
    {
        //Control Diario
        public ControlDiarioNE cne = new ControlDiarioNE();
        public ControlDiario cd = new ControlDiario();
                        
        //Lista de Cajas
        public ListaCajas lcajas = new ListaCajas();
        
        //Listado de Movimientos
        public TipoMovimiento tm = new TipoMovimiento();

        //Eventos y Delegados
        //Delegados para enviar datos de la Caja
        //public delegate void pasar(int codigo, string descripcion);
        ////Evento
        //public event pasar pasado;

        public int id;
        public string descripcion;
        public int idControlD;

        public void cargarListaCajas()
        {
            cboListaCaja.DataSource = cne.listarCajas();
            cboListaCaja.DisplayMember = "descripcion"; 
            cboListaCaja.ValueMember = "IdListaCaja";
        }

        public void aperturaCaja()
        {   DateTime Hoy = DateTime.Today;
            cd.IdControlDiario = cne.codigoControlDiario();
            idControlD = cd.IdControlDiario;
            string fecha = Hoy.ToString("yyyy-MM-dd");
            cd.fecha = DateTime.Parse(fecha);
            cd.IdMovimiento=1;
            cd.criterio = "APERTURA DE CAJA";
            cd.monto = decimal.Parse(txtMonto.Text);
            cd.ganancia = 0;
            cd.observacion = "Apertura de Caja";
            
        }

        public string registrarAperturaCaja()
        { 
            aperturaCaja();
            return cne.aperturaCaja(cd);

        }

        public FrmAperturaCaja()
        {
            InitializeComponent();
        }

        private void FrmAperturaCaja_Load(object sender, EventArgs e)
        {
            //String fecha= DateTime.Now.ToString();
            //DateTime Hoy = DateTime.Today;
            //string fecha = Hoy.ToString("yyyy-MM-dd");
            //string t2 = DateTime.Now.ToString("hh:mm:ss tt");
            //MessageBox.Show(fecha);
            //MessageBox.Show(t2);
            cargarListaCajas();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            MessageBox.Show("La Apertura de Caja es: "+registrarAperturaCaja());
            this.Hide();
                                  
           FrmControlDiario fcd = new FrmControlDiario();
           FrmControlDiario.id = id; 
           FrmControlDiario.desc = descripcion;
           FrmControlDiario.idControlD = idControlD;
           FrmControlDiario.totalIngresos = decimal.Parse(txtMonto.Text);
           fcd.Show();
        }

        private void txtMonto_TextChanged(object sender, EventArgs e)
        {
            try
            {
                txtTotalIngreso.Text = txtMonto.Text;

            }
            catch (Exception)
            {
                
                throw;
            }
        }

        private void cboListaCaja_SelectedIndexChanged(object sender, EventArgs e)
        {                      
        }

        private void cboListaCaja_SelectionChangeCommitted(object sender, EventArgs e)
        {
            //MessageBox.Show(cboListaCaja.SelectedValue.ToString());
             id = int.Parse(cboListaCaja.SelectedValue.ToString());
             descripcion = cboListaCaja.Text.ToString();
             MessageBox.Show(id.ToString() +"descripcion" +descripcion);
            
        }

        private static FrmAperturaCaja m_FormDefInstance;
        public static FrmAperturaCaja DefInstance
        {
            get
            {
                if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed)
                    m_FormDefInstance = new FrmAperturaCaja();
                return m_FormDefInstance;
            }
            set
            {
                m_FormDefInstance = value;
            }
        }
    }
}
